#ifndef __GGEAR_MATH_H
#define __GGEAR_MATH_H

#include <math.h>
#include "ggear_types.h"

namespace ggear
{
	namespace glb
	{
		class Math
		{
		public:
			template<class _Tx>
			static inline _Tx Min(_Tx _x, _Tx _y)
			{
				return (_x < _y ? _x : _y);
			}

			template<class _Tx>
			static inline _Tx Max(_Tx _x, _Tx _y)
			{
				return (_x > _y ? _x : _y);
			}

			template<class _Tx>
			static inline _Tx Abs(_Tx _x)
			{
				return (_x < 0 ? -_x : _x);
			}

			static inline f64 Cos(f64 _rad)
			{
				return cos(_rad);
			}

			static inline f64 Sin(f64 _rad)
			{
				return sin(_rad);
			}

			static inline f64 Sqrt(f64 _val)
			{
				return sqrt(_val);
			}
		};
	}
}

#endif